package com.rla.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.rla.common.annotation.ExcelDictFormat;
import com.rla.common.convert.ExcelDictConvert;
import lombok.Data;


/**
 * 线上商品（套餐、积分商品）共用视图对象 base_drug_online
 *
 * @author rla
 * @date 2025-08-04
 */
@Data
@ExcelIgnoreUnannotated
public class BaseDrugOnlineVo {

    private static final long serialVersionUID = 1L;

    /**
     * 商品编号
     */
    @ExcelProperty(value = "商品编号")
    private String drugCode;

    /**
     * 商品分类
     */
    @ExcelProperty(value = "商品分类")
    private String drugType;

    /**
     * 商品名称
     */
    @ExcelProperty(value = "商品名称")
    private String drugName;

    /**
     * 商品图片
     */
    @ExcelProperty(value = "商品图片")
    private String image;

    /**
     * 轮播图
     */
    @ExcelProperty(value = "轮播图")
    private String sliderImage;

    /**
     * 主图视频
     */
    @ExcelProperty(value = "主图视频")
    private String videoUrl;

    /**
     * 商品简介
     */
    @ExcelProperty(value = "商品简介")
    private String productInfo;

    /**
     * 商品详情
     */
    @ExcelProperty(value = "商品详情")
    private String productDetails;

    /**
     * 排序
     */
    @ExcelProperty(value = "排序")
    private Long sort;

    /**
     * 销量
     */
    @ExcelProperty(value = "销量")
    private String sales;

    /**
     * 状态（0：未上架，1：上架）
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=：未上架，1：上架")
    private String isShow;

    /**
     * 状态（0：不推荐，1：首页推荐，2：商品推荐，3：热搜推荐）多选
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=：不推荐，1：首页推荐，2：商品推荐，3：热搜推荐")
    private String isRecommend;

    /**
     * 是否包邮（0、不包邮，1、包邮）
     */
    @ExcelProperty(value = "是否包邮", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=、不包邮，1、包邮")
    private String isFreeShipping;

    /**
     * 是否组合选品（0、否，1、是）
     */
    @ExcelProperty(value = "是否组合选品", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=、否，1、是")
    private String isCombination;

    /**
     * 是否置顶（0、否，1、是）
     */
    @ExcelProperty(value = "是否置顶", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=、否，1、是")
    private String isTop;

    /**
     * 商品品类（0、普通商品，1、套餐商品，2、积分商品）
     */
    @ExcelProperty(value = "商品品类", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=、普通商品，1、套餐商品，2、积分商品")
    private String goodsCategory;

    /**
     * 最后一次上架时间
     */
    @ExcelProperty(value = "最后一次上架时间")
    private Date showTime;

    /**
     * 有效期（0：长期有效，1:临时有效）
     */
    @ExcelProperty(value = "有效期", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=：长期有效，1:临时有效")
    private String isExpiration;

    /**
     * 开始效期时间
     */
    @ExcelProperty(value = "开始效期时间")
    private Date startExpirationDate;

    /**
     * 截止效期时间
     */
    @ExcelProperty(value = "截止效期时间")
    private Date endExpirationDate;

    /**
     * 套餐包价格
     */
    @ExcelProperty(value = "套餐包价格")
    private BigDecimal packagePrice;

    /**
     * 套餐包原价（划线价）
     */
    @ExcelProperty(value = "套餐包原价", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "划=线价")
    private BigDecimal dashingPrice;


    private String pyCode;

    private String skuCode;

    private String speciName;

    private BigDecimal salesPrice;

    private int salesNum;

    private int virtualSalesNum;

    private List<BaseDrugSpeciVo> speciList;

    private String id;

    private Long exchangePoints;

    private String pdPackageCode;

}
